package nl.ekok.Kentekencheck;

import android.os.Parcel;
import android.os.Parcelable;

public class Auto implements Parcelable {

	public static final String ONBEKEND = "onbekend";
	
	private String kenteken;
	private String merk;
	private String model;

	private String motorCilinders;
	private String motorInhoud;
	private String motorVermogen;
	private String motorKoppel;
	
	private String gewicht;
	private String topsnelheid;
	private String acceleratie;
	
	/**
	 * Een auto info object met alle gegevens
	 */
	public Auto(String kenteken, String merk, String model, 
			String motorCilinders, String motorInhoud, String motorVermogen, String motorKoppel,
			String gewicht, String topsnelheid, String acceleratie) {
		this.kenteken = kenteken;
		this.merk = merk;
		this.model = model;

		this.motorCilinders = motorCilinders;
		this.motorInhoud = motorInhoud;
		this.motorVermogen = motorVermogen;
		this.motorKoppel = motorKoppel;

		this.gewicht = gewicht;
		this.topsnelheid = topsnelheid;
		this.acceleratie = acceleratie;
	}

	/**
	 * Een auto opbject zonder technische info
	 */
	public Auto(String kenteken, String merk, String model, String gewicht) {
		this(kenteken, merk, model, ONBEKEND, ONBEKEND, ONBEKEND, ONBEKEND, gewicht, ONBEKEND, ONBEKEND);
	}
	
	/**
	 * Een auto object uit de cache (alle info is beschikbaar, maar kan leeg zijn)
	 */
	public Auto(Parcel in) {
		// Uses the regular constructor that already uses strings only, but now they come from the serialized parcel
		this(in.readString(), in.readString(), in.readString(),
				in.readString(), in.readString(), in.readString(), in.readString(),
				in.readString(), in.readString(), in.readString());
	}

	public void setKenteken(String kenteken) {
		this.kenteken = kenteken;
	}

	public String getKenteken() {
		return kenteken;
	}

	public void setMerk(String merk) {
		this.merk = merk;
	}

	public String getMerk() {
		return merk;
	}

	public void setModel(String model) {
		this.model = model;
	}

	public String getModel() {
		return model;
	}

	public void setMotorCilinders(String motorCilinders) {
		this.motorCilinders = motorCilinders;
	}

	public String getMotorCilinders() {
		return motorCilinders;
	}

	public void setMotorInhoud(String motorInhoud) {
		this.motorInhoud = motorInhoud;
	}

	public String getMotorInhoud() {
		return motorInhoud;
	}

	public void setMotorVermogen(String motorVermogen) {
		this.motorVermogen = motorVermogen;
	}

	public String getMotorVermogen() {
		return motorVermogen;
	}

	public void setMotorKoppel(String motorKoppel) {
		this.motorKoppel = motorKoppel;
	}

	public String getMotorKoppel() {
		return motorKoppel;
	}

	public void setGewicht(String gewicht) {
		this.gewicht = gewicht;
	}

	public String getGewicht() {
		return gewicht;
	}

	public void setTopsnelheid(String topsnelheid) {
		this.topsnelheid = topsnelheid;
	}

	public String getTopsnelheid() {
		return topsnelheid;
	}

	public void setAcceleratie(String acceleratie) {
		this.acceleratie = acceleratie;
	}

	public String getAcceleratie() {
		return acceleratie;
	}

	public int describeContents() {
		return 0;
	}

    public static final Parcelable.Creator<Auto> CREATOR = new Parcelable.Creator<Auto>() {
    	public Auto createFromParcel(Parcel in) {
    		return new Auto(in);
    	}

		public Auto[] newArray(int size) {
		    return new Auto[size];
		}
    };

	public void writeToParcel(Parcel dest, int flags) {
		dest.writeString(kenteken);
		dest.writeString(merk);
		dest.writeString(model);
		
		dest.writeString(motorCilinders);
		dest.writeString(motorInhoud);
		dest.writeString(motorVermogen);
		dest.writeString(motorKoppel);
		
		dest.writeString(gewicht);
		dest.writeString(topsnelheid);
		dest.writeString(acceleratie);
	}

	public boolean hasTechnicalInfo() {
		return !motorCilinders.equals(ONBEKEND);
	}
	
	
}
